package top.dotgo.kit.oss;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.GetObjectRequest;

import java.io.File;

/**
 * @author : lin
 * @date : 2019/03/03 15:04
 * @description :
 * oss 文件下载工具包
 */
public class OssGetKit extends OssBaseKit {

    private static OssGetKit ossKit;

    private OssGetKit() {
    }

    public static OssGetKit get() {
        initClient();
        if (ossKit == null) {
            synchronized (OssGetKit.class) {
                if (ossKit == null) {
                    ossKit = new OssGetKit();
                }
            }
        }
        return ossKit;
    }


    /**
     * 下载文件
     *
     * @param key  oss中 的key（如果有文件夹 需要包含文件夹）
     * @param file 文件
     * @return boolean
     */
    public boolean getFile(String key, File file) {

        try {
            // 下载object到文件
            ossClient.getObject(new GetObjectRequest(BUCKET, key), file);

            return true;
        } catch (OSSException | ClientException e) {
            e.printStackTrace();
        } finally {
            // 关闭client
            ossClient.shutdown();

        }
        return false;

    }

    /**
     * 下载文件
     *
     * @param key       oss中 的key（如果有文件夹 需要包含文件夹）
     * @param localPath 本地文件路径
     * @return boolean
     */
    public boolean getFile(String key, String localPath) {
        return getFile(key, new File(localPath));

    }


}
